home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / emacs-complete / fsf / emacs / lisp / imenu.elc < prev    next >
Emacs Compiled Lisp  |  1994-10-24  |  11.0 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was processed as: Emacs Compiled Lisp (other/emacsCompiledLisp).
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert Emacs Compiled Lisp (other/emacsCompiledLisp) magic Unsupported
100% file Emacs/XEmacs v19 byte-compiled Lisp data default
99% file data default
100% TrID Emacs/XEmacs byte-compiled Lisp (generic) default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 13 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 72 6d 73 40 6d 6f 6c |piled by| rms@mol|
|00000020| 65 2e 67 6e 75 2e 61 69 | 2e 6d 69 74 2e 65 64 75 |e.gnu.ai|.mit.edu|
|00000030| 20 6f 6e 20 54 75 65 20 | 4f 63 74 20 32 35 20 30 | on Tue |Oct 25 0|
|00000040| 30 3a 34 30 3a 33 39 20 | 31 39 39 34 0a 3b 3b 3b |0:40:39 |1994.;;;|
|00000050| 20 66 72 6f 6d 20 66 69 | 6c 65 20 2f 68 6f 6d 65 | from fi|le /home|
|00000060| 2f 66 73 66 2f 72 6d 73 | 2f 65 31 39 2f 65 6d 61 |/fsf/rms|/e19/ema|
|00000070| 63 73 2d 31 39 2e 32 38 | 2f 6c 69 73 70 2f 69 6d |cs-19.28|/lisp/im|
|00000080| 65 6e 75 2e 65 6c 0a 3b | 3b 3b 20 65 6d 61 63 73 |enu.el.;|;; emacs|
|00000090| 20 76 65 72 73 69 6f 6e | 20 31 39 2e 32 37 2e 31 | version| 19.27.1|
|000000a0| 38 2e 0a 3b 3b 3b 20 62 | 79 74 65 63 6f 6d 70 20 |8..;;; b|ytecomp |
|000000b0| 76 65 72 73 69 6f 6e 20 | 46 53 46 20 32 2e 31 30 |version |FSF 2.10|
|000000c0| 0a 3b 3b 3b 20 6f 70 74 | 69 6d 69 7a 61 74 69 6f |.;;; opt|imizatio|
|000000d0| 6e 20 69 73 20 6f 6e 2e | 0a 3b 3b 3b 20 74 68 69 |n is on.|.;;; thi|
|000000e0| 73 20 66 69 6c 65 20 75 | 73 65 73 20 6f 70 63 6f |s file u|ses opco|
|000000f0| 64 65 73 20 77 68 69 63 | 68 20 64 6f 20 6e 6f 74 |des whic|h do not|
|00000100| 20 65 78 69 73 74 20 69 | 6e 20 45 6d 61 63 73 20 | exist i|n Emacs |
|00000110| 31 38 2e 0a 0a 28 69 66 | 20 28 61 6e 64 20 28 62 |18...(if| (and (b|
|00000120| 6f 75 6e 64 70 20 27 65 | 6d 61 63 73 2d 76 65 72 |oundp 'e|macs-ver|
|00000130| 73 69 6f 6e 29 0a 09 20 | 28 6f 72 20 28 61 6e 64 |sion).. |(or (and|
|00000140| 20 28 62 6f 75 6e 64 70 | 20 27 65 70 6f 63 68 3a | (boundp| 'epoch:|
|00000150| 3a 76 65 72 73 69 6f 6e | 29 20 65 70 6f 63 68 3a |:version|) epoch:|
|00000160| 3a 76 65 72 73 69 6f 6e | 29 0a 09 20 20 20 20 20 |:version|).. |
|00000170| 28 73 74 72 69 6e 67 2d | 6c 65 73 73 70 20 65 6d |(string-|lessp em|
|00000180| 61 63 73 2d 76 65 72 73 | 69 6f 6e 20 22 31 39 22 |acs-vers|ion "19"|
|00000190| 29 29 29 0a 20 20 20 20 | 28 65 72 72 6f 72 20 22 |))). |(error "|
|000001a0| 60 2f 68 6f 6d 65 2f 66 | 73 66 2f 72 6d 73 2f 65 |`/home/f|sf/rms/e|
|000001b0| 31 39 2f 65 6d 61 63 73 | 2d 31 39 2e 32 38 2f 6c |19/emacs|-19.28/l|
|000001c0| 69 73 70 2f 69 6d 65 6e | 75 2e 65 6c 27 20 77 61 |isp/imen|u.el' wa|
|000001d0| 73 20 63 6f 6d 70 69 6c | 65 64 20 66 6f 72 20 45 |s compil|ed for E|
|000001e0| 6d 61 63 73 20 31 39 22 | 29 29 0a 0a 28 64 65 66 |macs 19"|))..(def|
|000001f0| 76 61 72 20 69 6d 65 6e | 75 2d 61 6c 77 61 79 73 |var imen|u-always|
|00000200| 2d 75 73 65 2d 63 6f 6d | 70 6c 65 74 69 6f 6e 2d |-use-com|pletion-|
|00000210| 62 75 66 66 65 72 2d 70 | 20 6e 69 6c 20 22 5c 0a |buffer-p| nil "\.|
|00000220| 2a 53 65 74 20 74 68 69 | 73 20 74 6f 20 6e 6f 6e |*Set thi|s to non|
|00000230| 2d 6e 69 6c 20 66 6f 72 | 20 64 69 73 70 6c 61 79 |-nil for| display|
|00000240| 69 6e 67 20 74 68 65 20 | 69 6e 64 65 78 20 69 6e |ing the |index in|
|00000250| 20 61 20 63 6f 6d 70 6c | 65 74 69 6f 6e 20 62 75 | a compl|etion bu|
|00000260| 66 66 65 72 2e 0a 0a 4e | 6f 6e 2d 6e 69 6c 20 6d |ffer...N|on-nil m|
|00000270| 65 61 6e 73 20 61 6c 77 | 61 79 73 20 64 69 73 70 |eans alw|ays disp|
|00000280| 6c 61 79 20 74 68 65 20 | 69 6e 64 65 78 20 69 6e |lay the |index in|
|00000290| 20 61 20 63 6f 6d 70 6c | 65 74 69 6f 6e 20 62 75 | a compl|etion bu|
|000002a0| 66 66 65 72 2e 0a 4e 69 | 6c 20 6d 65 61 6e 73 20 |ffer..Ni|l means |
|000002b0| 64 69 73 70 6c 61 79 20 | 74 68 65 20 69 6e 64 65 |display |the inde|
|000002c0| 78 20 61 73 20 61 20 6d | 6f 75 73 65 20 6d 65 6e |x as a m|ouse men|
|000002d0| 75 20 77 68 65 6e 20 74 | 68 65 20 6d 6f 75 73 65 |u when t|he mouse|
|000002e0| 20 77 61 73 0a 75 73 65 | 64 20 74 6f 20 69 6e 76 | was.use|d to inv|
|000002f0| 6f 6b 65 20 60 69 6d 65 | 6e 75 27 2e 22 29 0a 28 |oke `ime|nu'.").(|
|00000300| 64 65 66 76 61 72 20 69 | 6d 65 6e 75 2d 73 6f 72 |defvar i|menu-sor|
|00000310| 74 2d 66 75 6e 63 74 69 | 6f 6e 20 6e 69 6c 20 22 |t-functi|on nil "|
|00000320| 5c 0a 2a 54 68 65 20 66 | 75 6e 63 74 69 6f 6e 20 |\.*The f|unction |
|00000330| 74 6f 20 75 73 65 20 66 | 6f 72 20 73 6f 72 74 69 |to use f|or sorti|
|00000340| 6e 67 20 74 68 65 20 69 | 6e 64 65 78 20 6d 6f 75 |ng the i|ndex mou|
|00000350| 73 65 2d 6d 65 6e 75 2e | 0a 0a 41 66 66 65 63 74 |se-menu.|..Affect|
|00000360| 73 20 6f 6e 6c 79 20 74 | 68 65 20 6d 6f 75 73 65 |s only t|he mouse|
|00000370| 20 69 6e 64 65 78 20 6d | 65 6e 75 2e 0a 0a 53 65 | index m|enu...Se|
|00000380| 74 20 74 68 69 73 20 74 | 6f 20 6e 69 6c 20 69 66 |t this t|o nil if|
|00000390| 20 79 6f 75 20 64 6f 6e | 27 74 20 77 61 6e 74 20 | you don|'t want |
|000003a0| 61 6e 79 20 73 6f 72 74 | 69 6e 67 20 28 66 61 73 |any sort|ing (fas|
|000003b0| 74 65 72 29 2e 0a 54 68 | 65 20 69 74 65 6d 73 20 |ter)..Th|e items |
|000003c0| 69 6e 20 74 68 65 20 6d | 65 6e 75 20 61 72 65 20 |in the m|enu are |
|000003d0| 74 68 65 6e 20 70 72 65 | 73 65 6e 74 65 64 20 69 |then pre|sented i|
|000003e0| 6e 20 74 68 65 20 6f 72 | 64 65 72 20 74 68 65 79 |n the or|der they|
|000003f0| 20 77 65 72 65 20 66 6f | 75 6e 64 0a 69 6e 20 74 | were fo|und.in t|
|00000400| 68 65 20 62 75 66 66 65 | 72 2e 0a 0a 53 65 74 20 |he buffe|r...Set |
|00000410| 69 74 20 74 6f 20 60 69 | 6d 65 6e 75 2d 2d 73 6f |it to `i|menu--so|
|00000420| 72 74 2d 62 79 2d 6e 61 | 6d 65 27 20 69 66 20 79 |rt-by-na|me' if y|
|00000430| 6f 75 20 77 61 6e 74 20 | 61 6c 70 68 61 62 65 74 |ou want |alphabet|
|00000440| 69 63 20 73 6f 72 74 69 | 6e 67 2e 0a 0a 54 68 65 |ic sorti|ng...The|
|00000450| 20 66 75 6e 63 74 69 6f | 6e 20 73 68 6f 75 6c 64 | functio|n should|
|00000460| 20 74 61 6b 65 20 74 77 | 6f 20 61 72 67 75 6d 65 | take tw|o argume|
|00000470| 6e 74 73 20 61 6e 64 20 | 72 65 74 75 72 6e 20 54 |nts and |return T|
|00000480| 20 69 66 20 74 68 65 20 | 66 69 72 73 74 0a 65 6c | if the |first.el|
|00000490| 65 6d 65 6e 74 20 73 68 | 6f 75 6c 64 20 63 6f 6d |ement sh|ould com|
|000004a0| 65 20 62 65 66 6f 72 65 | 20 74 68 65 20 73 65 63 |e before| the sec|
|000004b0| 6f 6e 64 2e 20 20 54 68 | 65 20 61 72 67 75 6d 65 |ond. Th|e argume|
|000004c0| 6e 74 73 20 61 72 65 20 | 63 6f 6e 73 20 63 65 6c |nts are |cons cel|
|000004d0| 6c 73 3b 0a 28 4e 41 4d | 45 20 2e 20 50 4f 53 49 |ls;.(NAM|E . POSI|
|000004e0| 54 49 4f 4e 29 2e 20 20 | 4c 6f 6f 6b 20 61 74 20 |TION). |Look at |
|000004f0| 60 69 6d 65 6e 75 2d 2d | 73 6f 72 74 2d 62 79 2d |`imenu--|sort-by-|
|00000500| 6e 61 6d 65 27 20 66 6f | 72 20 61 6e 20 65 78 61 |name' fo|r an exa|
|00000510| 6d 70 6c 65 2e 22 29 0a | 28 64 65 66 76 61 72 20 |mple.").|(defvar |
|00000520| 69 6d 65 6e 75 2d 6d 61 | 78 2d 69 74 65 6d 73 20 |imenu-ma|x-items |
|00000530| 32 35 20 22 5c 0a 2a 4d | 61 78 69 6d 75 6d 20 6e |25 "\.*M|aximum n|
|00000540| 75 6d 62 65 72 20 6f 66 | 20 65 6c 65 6d 65 6e 74 |umber of| element|
|00000550| 73 20 69 6e 20 61 6e 20 | 69 6e 64 65 78 20 6d 6f |s in an |index mo|
|00000560| 75 73 65 2d 6d 65 6e 75 | 2e 22 29 0a 28 64 65 66 |use-menu|.").(def|
|00000570| 76 61 72 20 69 6d 65 6e | 75 2d 73 63 61 6e 6e 69 |var imen|u-scanni|
|00000580| 6e 67 2d 6d 65 73 73 61 | 67 65 20 22 53 63 61 6e |ng-messa|ge "Scan|
|00000590| 6e 69 6e 67 20 62 75 66 | 66 65 72 20 66 6f 72 20 |ning buf|fer for |
|000005a0| 69 6e 64 65 78 2e 20 28 | 25 33 64 25 25 29 22 20 |index. (|%3d%%)" |
|000005b0| 22 5c 0a 2a 50 72 6f 67 | 72 65 73 73 20 6d 65 73 |"\.*Prog|ress mes|
|000005c0| 73 61 67 65 20 64 75 72 | 69 6e 67 20 74 68 65 20 |sage dur|ing the |
|000005d0| 69 6e 64 65 78 20 73 63 | 61 6e 6e 69 6e 67 20 6f |index sc|anning o|
|000005e0| 66 20 74 68 65 20 62 75 | 66 66 65 72 2e 0a 49 66 |f the bu|ffer..If|
|000005f0| 20 6e 6f 6e 2d 6e 69 6c | 2c 20 75 73 65 72 20 67 | non-nil|, user g|
|00000600| 65 74 73 20 61 20 6d 65 | 73 73 61 67 65 20 64 75 |ets a me|ssage du|
|00000610| 72 69 6e 67 20 74 68 65 | 20 73 63 61 6e 6e 69 6e |ring the| scannin|
|00000620| 67 20 6f 66 20 74 68 65 | 20 62 75 66 66 65 72 0a |g of the| buffer.|
|00000630| 0a 52 65 6c 65 76 61 6e | 74 20 6f 6e 6c 79 20 69 |.Relevan|t only i|
|00000640| 66 20 74 68 65 20 6d 6f | 64 65 2d 73 70 65 63 69 |f the mo|de-speci|
|00000650| 66 69 63 20 66 75 6e 63 | 74 69 6f 6e 20 74 68 61 |fic func|tion tha|
|00000660| 74 20 63 72 65 61 74 65 | 73 20 74 68 65 20 62 75 |t create|s the bu|
|00000670| 66 66 65 72 0a 69 6e 64 | 65 78 20 75 73 65 20 60 |ffer.ind|ex use `|
|00000680| 69 6d 65 6e 75 2d 70 72 | 6f 67 72 65 73 73 2d 6d |imenu-pr|ogress-m|
|00000690| 65 73 73 61 67 65 27 2e | 22 29 0a 28 64 65 66 76 |essage'.|").(defv|
|000006a0| 61 72 20 69 6d 65 6e 75 | 2d 73 70 61 63 65 2d 72 |ar imenu|-space-r|
|000006b0| 65 70 6c 61 63 65 6d 65 | 6e 74 20 22 5e 22 20 22 |eplaceme|nt "^" "|
|000006c0| 5c 0a 2a 54 68 65 20 72 | 65 70 6c 61 63 65 6d 65 |\.*The r|eplaceme|
|000006d0| 6e 74 20 73 74 72 69 6e | 67 20 66 6f 72 20 73 70 |nt strin|g for sp|
|000006e0| 61 63 65 73 20 69 6e 20 | 69 6e 64 65 78 20 6e 61 |aces in |index na|
|000006f0| 6d 65 73 2e 0a 55 73 65 | 64 20 77 68 65 6e 20 70 |mes..Use|d when p|
|00000700| 72 65 73 65 6e 74 69 6e | 67 20 74 68 65 20 69 6e |resentin|g the in|
|00000710| 64 65 78 20 69 6e 20 61 | 20 63 6f 6d 70 6c 65 74 |dex in a| complet|
|00000720| 69 6f 6e 2d 62 75 66 66 | 65 72 20 74 6f 20 6d 61 |ion-buff|er to ma|
|00000730| 6b 65 20 74 68 65 0a 6e | 61 6d 65 73 20 77 6f 72 |ke the.n|ames wor|
|00000740| 6b 20 61 73 20 74 6f 6b | 65 6e 73 2e 22 29 0a 28 |k as tok|ens.").(|
|00000750| 64 65 66 76 61 72 20 69 | 6d 65 6e 75 2d 6c 65 76 |defvar i|menu-lev|
|00000760| 65 6c 2d 73 65 70 61 72 | 61 74 6f 72 20 22 3a 22 |el-separ|ator ":"|
|00000770| 20 22 5c 0a 2a 54 68 65 | 20 73 65 70 61 72 61 74 | "\.*The| separat|
|00000780| 6f 72 20 62 65 74 77 65 | 65 6e 20 69 6e 64 65 78 |or betwe|en index|
|00000790| 20 6e 61 6d 65 73 20 6f | 66 20 64 69 66 66 65 72 | names o|f differ|
|000007a0| 65 6e 74 20 6c 65 76 65 | 6c 73 2e 0a 55 73 65 64 |ent leve|ls..Used|
|000007b0| 20 66 6f 72 20 6d 61 6b | 69 6e 67 20 6d 6f 75 73 | for mak|ing mous|
|000007c0| 65 2d 6d 65 6e 75 20 74 | 69 74 6c 65 73 20 61 6e |e-menu t|itles an|
|000007d0| 64 20 66 6f 72 20 66 6c | 61 74 74 65 6e 69 6e 67 |d for fl|attening|
|000007e0| 20 6e 65 73 74 65 64 20 | 69 6e 64 65 78 65 73 0a | nested |indexes.|
|000007f0| 77 69 74 68 20 6e 61 6d | 65 20 63 6f 6e 63 61 74 |with nam|e concat|
|00000800| 65 6e 61 74 69 6f 6e 2e | 22 29 0a 28 64 65 66 76 |enation.|").(defv|
|00000810| 61 72 20 69 6d 65 6e 75 | 2d 73 75 62 6d 65 6e 75 |ar imenu|-submenu|
|00000820| 2d 6e 61 6d 65 2d 66 6f | 72 6d 61 74 20 22 25 73 |-name-fo|rmat "%s|
|00000830| 2e 2e 2e 22 20 22 5c 0a | 2a 54 68 65 20 66 6f 72 |..." "\.|*The for|
|00000840| 6d 61 74 20 66 6f 72 20 | 6d 61 6b 69 6e 67 20 61 |mat for |making a|
|00000850| 20 73 75 62 6d 65 6e 75 | 20 6e 61 6d 65 2e 22 29 | submenu| name.")|
|00000860| 0a 28 64 65 66 76 61 72 | 20 69 6d 65 6e 75 2d 63 |.(defvar| imenu-c|
|00000870| 72 65 61 74 65 2d 69 6e | 64 65 78 2d 66 75 6e 63 |reate-in|dex-func|
|00000880| 74 69 6f 6e 20 28 71 75 | 6f 74 65 20 69 6d 65 6e |tion (qu|ote imen|
|00000890| 75 2d 64 65 66 61 75 6c | 74 2d 63 72 65 61 74 65 |u-defaul|t-create|
|000008a0| 2d 69 6e 64 65 78 2d 66 | 75 6e 63 74 69 6f 6e 29 |-index-f|unction)|
|000008b0| 20 22 5c 0a 54 68 65 20 | 66 75 6e 63 74 69 6f 6e | "\.The |function|
|000008c0| 20 74 6f 20 75 73 65 20 | 66 6f 72 20 63 72 65 61 | to use |for crea|
|000008d0| 74 69 6e 67 20 61 20 62 | 75 66 66 65 72 20 69 6e |ting a b|uffer in|
|000008e0| 64 65 78 2e 0a 0a 49 74 | 20 73 68 6f 75 6c 64 20 |dex...It| should |
|000008f0| 62 65 20 61 20 66 75 6e | 63 74 69 6f 6e 20 74 68 |be a fun|ction th|
|00000900| 61 74 20 74 61 6b 65 73 | 20 6e 6f 20 61 72 67 75 |at takes| no argu|
|00000910| 6d 65 6e 74 73 20 61 6e | 64 20 72 65 74 75 72 6e |ments an|d return|
|00000920| 73 20 61 6e 20 69 6e 64 | 65 78 0a 6f 66 20 74 68 |s an ind|ex.of th|
|00000930| 65 20 63 75 72 72 65 6e | 74 20 62 75 66 66 65 72 |e curren|t buffer|
|00000940| 20 61 73 20 61 6e 20 61 | 6c 69 73 74 2e 20 54 68 | as an a|list. Th|
|00000950| 65 20 65 6c 65 6d 65 6e | 74 73 20 69 6e 20 74 68 |e elemen|ts in th|
|00000960| 65 20 61 6c 69 73 74 20 | 6c 6f 6f 6b 0a 6c 69 6b |e alist |look.lik|
|00000970| 65 3a 20 28 49 4e 44 45 | 58 2d 4e 41 4d 45 20 2e |e: (INDE|X-NAME .|
|00000980| 20 49 4e 44 45 58 2d 50 | 4f 53 49 54 49 4f 4e 29 | INDEX-P|OSITION)|
|00000990| 2e 20 59 6f 75 20 6d 61 | 79 20 61 6c 73 6f 20 6e |. You ma|y also n|
|000009a0| 65 73 74 20 69 6e 64 65 | 78 20 6c 69 73 74 20 6c |est inde|x list l|
|000009b0| 69 6b 65 0a 28 49 4e 44 | 45 58 2d 4e 41 4d 45 20 |ike.(IND|EX-NAME |
|000009c0| 2e 20 49 4e 44 45 58 2d | 41 4c 49 53 54 29 2e 0a |. INDEX-|ALIST)..|
|000009d0| 0a 54 68 69 73 20 66 75 | 6e 63 74 69 6f 6e 20 69 |.This fu|nction i|
|000009e0| 73 20 63 61 6c 6c 65 64 | 20 77 69 74 68 69 6e 20 |s called| within |
|000009f0| 61 20 60 73 61 76 65 2d | 65 78 63 75 72 73 69 6f |a `save-|excursio|
|00000a00| 6e 27 2e 0a 0a 54 68 65 | 20 76 61 72 69 61 62 6c |n'...The| variabl|
|00000a10| 65 20 69 73 20 62 75 66 | 66 65 72 2d 6c 6f 63 61 |e is buf|fer-loca|
|00000a20| 6c 2e 22 29 0a 28 6d 61 | 6b 65 2d 76 61 72 69 61 |l.").(ma|ke-varia|
|00000a30| 62 6c 65 2d 62 75 66 66 | 65 72 2d 6c 6f 63 61 6c |ble-buff|er-local|
|00000a40| 20 28 71 75 6f 74 65 20 | 69 6d 65 6e 75 2d 63 72 | (quote |imenu-cr|
|00000a50| 65 61 74 65 2d 69 6e 64 | 65 78 2d 66 75 6e 63 74 |eate-ind|ex-funct|
|00000a60| 69 6f 6e 29 29 0a 28 64 | 65 66 76 61 72 20 69 6d |ion)).(d|efvar im|
|00000a70| 65 6e 75 2d 70 72 65 76 | 2d 69 6e 64 65 78 2d 70 |enu-prev|-index-p|
|00000a80| 6f 73 69 74 69 6f 6e 2d | 66 75 6e 63 74 69 6f 6e |osition-|function|
|00000a90| 20 28 71 75 6f 74 65 20 | 62 65 67 69 6e 6e 69 6e | (quote |beginnin|
|00000aa0| 67 2d 6f 66 2d 64 65 66 | 75 6e 29 20 22 5c 0a 46 |g-of-def|un) "\.F|
|00000ab0| 75 6e 63 74 69 6f 6e 20 | 66 6f 72 20 66 69 6e 64 |unction |for find|
|00000ac0| 69 6e 67 20 74 68 65 20 | 6e 65 78 74 20 69 6e 64 |ing the |next ind|
|00000ad0| 65 78 20 70 6f 73 69 74 | 69 6f 6e 2e 0a 0a 49 66 |ex posit|ion...If|
|00000ae0| 20 60 69 6d 65 6e 75 2d | 63 72 65 61 74 65 2d 69 | `imenu-|create-i|
|00000af0| 6e 64 65 78 2d 66 75 6e | 63 74 69 6f 6e 27 20 69 |ndex-fun|ction' i|
|00000b00| 73 20 73 65 74 20 74 6f | 0a 60 69 6d 65 6e 75 2d |s set to|.`imenu-|
|00000b10| 64 65 66 61 75 6c 74 2d | 63 72 65 61 74 65 2d 69 |default-|create-i|
|00000b20| 6e 64 65 78 2d 66 75 6e | 63 74 69 6f 6e 27 2c 20 |ndex-fun|ction', |
|00000b30| 74 68 65 6e 20 79 6f 75 | 20 6d 75 73 74 20 73 65 |then you| must se|
|00000b40| 74 20 74 68 69 73 20 76 | 61 72 69 61 62 6c 65 0a |t this v|ariable.|
|00000b50| 74 6f 20 61 20 66 75 6e | 63 74 69 6f 6e 20 74 68 |to a fun|ction th|
|00000b60| 61 74 20 77 69 6c 6c 20 | 66 69 6e 64 20 74 68 65 |at will |find the|
|00000b70| 20 6e 65 78 74 20 69 6e | 64 65 78 2c 20 6c 6f 6f | next in|dex, loo|
|00000b80| 6b 69 6e 67 20 62 61 63 | 6b 77 61 72 64 73 20 69 |king bac|kwards i|
|00000b90| 6e 20 74 68 65 0a 66 69 | 6c 65 2e 0a 0a 54 68 65 |n the.fi|le...The|
|00000ba0| 20 66 75 6e 63 74 69 6f | 6e 20 73 68 6f 75 6c 64 | functio|n should|
|00000bb0| 20 6c 65 61 76 65 20 70 | 6f 69 6e 74 20 61 74 20 | leave p|oint at |
|00000bc0| 74 68 65 20 70 6c 61 63 | 65 20 74 6f 20 62 65 20 |the plac|e to be |
|00000bd0| 63 6f 6e 6e 65 63 74 65 | 64 20 74 6f 20 74 68 65 |connecte|d to the|
|00000be0| 0a 69 6e 64 65 78 20 61 | 6e 64 20 69 74 20 73 68 |.index a|nd it sh|
|00000bf0| 6f 75 6c 64 20 72 65 74 | 75 72 6e 20 6e 69 6c 20 |ould ret|urn nil |
|00000c00| 77 68 65 6e 20 69 74 20 | 64 6f 65 73 6e 27 74 20 |when it |doesn't |
|00000c10| 66 69 6e 64 20 61 6e 6f | 74 68 65 72 20 69 6e 64 |find ano|ther ind|
|00000c20| 65 78 2e 20 22 29 0a 28 | 6d 61 6b 65 2d 76 61 72 |ex. ").(|make-var|
|00000c30| 69 61 62 6c 65 2d 62 75 | 66 66 65 72 2d 6c 6f 63 |iable-bu|ffer-loc|
|00000c40| 61 6c 20 28 71 75 6f 74 | 65 20 69 6d 65 6e 75 2d |al (quot|e imenu-|
|00000c50| 70 72 65 76 2d 69 6e 64 | 65 78 2d 70 6f 73 69 74 |prev-ind|ex-posit|
|00000c60| 69 6f 6e 2d 66 75 6e 63 | 74 69 6f 6e 29 29 0a 28 |ion-func|tion)).(|
|00000c70| 64 65 66 76 61 72 20 69 | 6d 65 6e 75 2d 65 78 74 |defvar i|menu-ext|
|00000c80| 72 61 63 74 2d 69 6e 64 | 65 78 2d 6e 61 6d 65 2d |ract-ind|ex-name-|
|00000c90| 66 75 6e 63 74 69 6f 6e | 20 6e 69 6c 20 22 5c 0a |function| nil "\.|
|00000ca0| 46 75 6e 63 74 69 6f 6e | 20 66 6f 72 20 65 78 74 |Function| for ext|
|00000cb0| 72 61 63 74 69 6e 67 20 | 74 68 65 20 69 6e 64 65 |racting |the inde|
|00000cc0| 78 20 6e 61 6d 65 2e 0a | 0a 54 68 69 73 20 66 75 |x name..|.This fu|
|00000cd0| 6e 63 74 69 6f 6e 20 69 | 73 20 63 61 6c 6c 65 64 |nction i|s called|
|00000ce0| 20 61 66 74 65 72 20 74 | 68 65 20 66 75 6e 63 74 | after t|he funct|
|00000cf0| 69 6f 6e 20 70 6f 69 6e | 74 65 64 20 6f 75 74 20 |ion poin|ted out |
|00000d00| 62 79 0a 60 69 6d 65 6e | 75 2d 70 72 65 76 2d 69 |by.`imen|u-prev-i|
|00000d10| 6e 64 65 78 2d 70 6f 73 | 69 74 69 6f 6e 2d 66 75 |ndex-pos|ition-fu|
|00000d20| 6e 63 74 69 6f 6e 27 2e | 22 29 0a 28 62 79 74 65 |nction'.|").(byte|
|00000d30| 2d 63 6f 64 65 20 22 c0 | c1 21 88 c2 13 c4 c5 21 |-code ".|.!.....!|
|00000d40| 84 0e 00 c6 15 c0 c5 21 | 88 c4 c7 21 84 1b 00 c6 |.......!|...!....|
|00000d50| 16 07 c0 c7 21 88 c8 c9 | ca 5c 22 88 c8 cb cc 5c |....!...|.\"....\|
|00000d60| 22 88 c8 cd ce 5c 22 88 | c8 cf d0 5c 22 88 c8 d1 |"....\".|...\"...|
|00000d70| d2 5c 22 88 c8 d3 d4 5c | 22 88 c8 d5 d6 5c 22 88 |.\"....\|"....\".|
|00000d80| c8 d7 d8 5c 22 87 22 20 | 5b 6d 61 6b 65 2d 76 61 |...\"." |[make-va|
|00000d90| 72 69 61 62 6c 65 2d 62 | 75 66 66 65 72 2d 6c 6f |riable-b|uffer-lo|
|00000da0| 63 61 6c 20 69 6d 65 6e | 75 2d 65 78 74 72 61 63 |cal imen|u-extrac|
|00000db0| 74 2d 69 6e 64 65 78 2d | 6e 61 6d 65 2d 66 75 6e |t-index-|name-fun|
|00000dc0| 63 74 69 6f 6e 20 28 22 | 2a 52 65 73 63 61 6e 2a |ction ("|*Rescan*|
|00000dd0| 22 20 2e 20 2d 39 39 29 | 20 69 6d 65 6e 75 2d 2d |" . -99)| imenu--|
|00000de0| 72 65 73 63 61 6e 2d 69 | 74 65 6d 20 62 6f 75 6e |rescan-i|tem boun|
|00000df0| 64 70 20 69 6d 65 6e 75 | 2d 2d 69 6e 64 65 78 2d |dp imenu|--index-|
|00000e00| 61 6c 69 73 74 20 6e 69 | 6c 20 69 6d 65 6e 75 2d |alist ni|l imenu-|
|00000e10| 2d 68 69 73 74 6f 72 79 | 2d 6c 69 73 74 20 64 65 |-history|-list de|
|00000e20| 66 61 6c 69 61 73 20 69 | 6d 65 6e 75 2d 2d 73 6f |falias i|menu--so|
|00000e30| 72 74 2d 62 79 2d 6e 61 | 6d 65 20 23 5b 28 69 74 |rt-by-na|me #[(it|
|00000e40| 65 6d 31 20 69 74 65 6d | 32 29 20 22 08 40 09 40 |em1 item|2) ".@.@|
|00000e50| 99 87 22 20 5b 69 74 65 | 6d 31 20 69 74 65 6d 32 |.." [ite|m1 item2|
|00000e60| 5d 20 32 5d 20 69 6d 65 | 6e 75 2d 2d 72 65 6c 61 |] 2] ime|nu--rela|
|00000e70| 74 69 76 65 2d 70 6f 73 | 69 74 69 6f 6e 20 23 5b |tive-pos|ition #[|
|00000e80| 28 26 6f 70 74 69 6f 6e | 61 6c 20 72 65 76 65 72 |(&option|al rever|
|00000e90| 73 65 29 20 22 60 c0 20 | 19 1a 0b 83 0d 00 09 5c |se) "`. |.......\|
|00000ea0| 6e 5a 12 09 c4 56 83 1e | 00 5c 6e 53 09 c5 a5 c6 |nZ...V..|.\nS....|
|00000eb0| 5d a5 82 26 00 5c 6e 53 | c5 5f 09 c6 5d a5 2a 87 |]..&.\nS|._..].*.|
|00000ec0| 22 20 5b 62 75 66 66 65 | 72 2d 73 69 7a 65 20 74 |" [buffe|r-size t|
|00000ed0| 6f 74 61 6c 20 70 6f 73 | 20 72 65 76 65 72 73 65 |otal pos| reverse|
|00000ee0| 20 35 30 30 30 30 20 31 | 30 30 20 31 5d 20 33 5d | 50000 1|00 1] 3]|
|00000ef0| 20 69 6d 65 6e 75 2d 70 | 72 6f 67 72 65 73 73 2d | imenu-p|rogress-|
|00000f00| 6d 65 73 73 61 67 65 20 | 28 6d 61 63 72 6f 20 2e |message |(macro .|
|00000f10| 20 23 5b 28 70 72 65 76 | 70 6f 73 20 26 6f 70 74 | #[(prev|pos &opt|
|00000f20| 69 6f 6e 61 6c 20 72 65 | 6c 70 6f 73 20 72 65 76 |ional re|lpos rev|
|00000f30| 65 72 73 65 29 20 22 c0 | c1 c2 c3 5c 66 83 5c 66 |erse) ".|...\f.\f|
|00000f40| 00 5c 66 82 10 00 c5 0e | 06 44 44 43 c7 5c 66 83 |.\f.....|.DDC.\f.|
|00000f50| 1b 00 c8 82 23 00 c9 c3 | ca cb 0e 5c 66 45 45 cd |....#...|...\fEE.|
|00000f60| ce cf 0e 5c 66 d0 42 42 | 45 45 45 45 87 22 20 5b |...\f.BB|EEEE." [|
|00000f70| 61 6e 64 20 69 6d 65 6e | 75 2d 73 63 61 6e 6e 69 |and imen|u-scanni|
|00000f80| 6e 67 2d 6d 65 73 73 61 | 67 65 20 6c 65 74 20 70 |ng-messa|ge let p|
|00000f90| 6f 73 20 72 65 6c 70 6f | 73 20 69 6d 65 6e 75 2d |os relpo|s imenu-|
|00000fa0| 2d 72 65 6c 61 74 69 76 | 65 2d 70 6f 73 69 74 69 |-relativ|e-positi|
|00000fb0| 6f 6e 20 72 65 76 65 72 | 73 65 20 69 66 20 74 20 |on rever|se if t |
|00000fc0| 3e 20 2b 20 35 20 70 72 | 65 76 70 6f 73 20 70 72 |> + 5 pr|evpos pr|
|00000fd0| 6f 67 6e 20 28 6d 65 73 | 73 61 67 65 20 69 6d 65 |ogn (mes|sage ime|
|00000fe0| 6e 75 2d 73 63 61 6e 6e | 69 6e 67 2d 6d 65 73 73 |nu-scann|ing-mess|
|00000ff0| 61 67 65 20 70 6f 73 29 | 20 73 65 74 71 20 28 70 |age pos)| setq (p|
|00001000| 6f 73 29 5d 20 31 31 5d | 29 20 69 6d 65 6e 75 2d |os)] 11]|) imenu-|
|00001010| 63 72 65 61 74 65 2d 73 | 75 62 6d 65 6e 75 2d 6e |create-s|ubmenu-n|
|00001020| 61 6d 65 20 23 5b 28 6e | 61 6d 65 29 20 22 c0 09 |ame #[(n|ame) "..|
|00001030| 5c 6e 5c 22 87 22 20 5b | 66 6f 72 6d 61 74 20 69 |\n\"." [|format i|
|00001040| 6d 65 6e 75 2d 73 75 62 | 6d 65 6e 75 2d 6e 61 6d |menu-sub|menu-nam|
|00001050| 65 2d 66 6f 72 6d 61 74 | 20 6e 61 6d 65 5d 20 33 |e-format| name] 3|
|00001060| 5d 20 69 6d 65 6e 75 2d | 2d 73 70 6c 69 74 20 23 |] imenu-|-split #|
|00001070| 5b 28 6c 69 73 74 20 6e | 29 20 22 08 c1 89 c2 1b |[(list n|) ".....|
|00001080| 1c 1d 1e 06 0e 06 83 2e | 00 0e 06 89 41 16 06 40 |........|....A..@|
|00001090| 5c 66 42 14 0b 54 89 13 | 0e 07 55 83 09 00 5c 66 |\fB..T..|..U...\f|
|000010a0| 9f 0d 42 15 c2 13 c1 14 | 82 09 00 5c 66 83 37 00 |..B.....|...\f.7.|
|000010b0| 5c 66 9f 0d 42 15 0d 9f | 2c 87 22 20 5b 6c 69 73 |\f..B...|,." [lis|
|000010c0| 74 20 6e 69 6c 20 30 20 | 69 20 73 75 62 6c 69 73 |t nil 0 |i sublis|
|000010d0| 74 20 72 65 73 75 6c 74 | 20 72 65 6d 61 69 6e 20 |t result| remain |
|000010e0| 6e 5d 20 35 5d 20 69 6d | 65 6e 75 2d 2d 73 70 6c |n] 5] im|enu--spl|
|000010f0| 69 74 2d 6d 65 6e 75 20 | 23 5b 28 6d 65 6e 75 6c |it-menu |#[(menul|
|00001100| 69 73 74 20 74 69 74 6c | 65 29 20 22 c0 c1 c2 c3 |ist titl|e) "....|
|00001110| 5c 66 0d 5c 22 5c 22 42 | 87 22 20 5b 22 46 75 6e |\f.\"\"B|." ["Fun|
|00001120| 63 74 69 6f 6e 20 6d 65 | 6e 75 73 22 20 6d 61 70 |ction me|nus" map|
|00001130| 63 61 72 20 23 5b 28 6d | 65 6e 75 29 20 22 c0 c1 |car #[(m|enu) "..|
|00001140| 5c 6e 5c 22 0b 42 87 22 | 20 5b 66 6f 72 6d 61 74 |\n\".B."| [format|
|00001150| 20 22 28 25 73 29 22 20 | 74 69 74 6c 65 20 6d 65 | "(%s)" |title me|
|00001160| 6e 75 5d 20 33 5d 20 69 | 6d 65 6e 75 2d 2d 73 70 |nu] 3] i|menu--sp|
|00001170| 6c 69 74 20 6d 65 6e 75 | 6c 69 73 74 20 69 6d 65 |lit menu|list ime|
|00001180| 6e 75 2d 6d 61 78 2d 69 | 74 65 6d 73 5d 20 36 5d |nu-max-i|tems] 6]|
|00001190| 20 69 6d 65 6e 75 2d 2d | 6d 61 6b 65 2d 69 6e 64 | imenu--|make-ind|
|000011a0| 65 78 2d 61 6c 69 73 74 | 20 23 5b 6e 69 6c 20 22 |ex-alist| #[nil "|
|000011b0| 08 84 09 00 8a 09 20 29 | 10 08 84 11 00 c2 c3 21 |...... )|.......!|
|000011c0| 88 5c 66 08 42 87 22 20 | 5b 69 6d 65 6e 75 2d 2d |.\f.B." |[imenu--|
|000011d0| 69 6e 64 65 78 2d 61 6c | 69 73 74 20 69 6d 65 6e |index-al|ist imen|
|000011e0| 75 2d 63 72 65 61 74 65 | 2d 69 6e 64 65 78 2d 66 |u-create|-index-f|
|000011f0| 75 6e 63 74 69 6f 6e 20 | 65 72 72 6f 72 20 22 4e |unction |error "N|
|00001200| 6f 20 69 74 65 6d 73 20 | 73 75 69 74 61 62 6c 65 |o items |suitable|
|00001210| 20 66 6f 72 20 61 6e 20 | 69 6e 64 65 78 20 66 6f | for an |index fo|
|00001220| 75 6e 64 20 69 6e 20 74 | 68 69 73 20 62 75 66 66 |und in t|his buff|
|00001230| 65 72 2e 22 20 69 6d 65 | 6e 75 2d 2d 72 65 73 63 |er." ime|nu--resc|
|00001240| 61 6e 2d 69 74 65 6d 5d | 20 32 5d 20 69 6d 65 6e |an-item]| 2] imen|
|00001250| 75 2d 2d 63 6c 65 61 6e | 75 70 20 23 5b 28 26 6f |u--clean|up #[(&o|
|00001260| 70 74 69 6f 6e 61 6c 20 | 61 6c 69 73 74 29 20 22 |ptional |alist) "|
|00001270| 08 85 14 00 c1 c2 0b 83 | 0e 00 0b 82 0f 00 08 5c |........|.......\|
|00001280| 22 85 14 00 c4 87 22 20 | 5b 69 6d 65 6e 75 2d 2d |"....." |[imenu--|
|00001290| 69 6e 64 65 78 2d 61 6c | 69 73 74 20 6d 61 70 63 |index-al|ist mapc|
|000012a0| 61 72 20 23 5b 28 69 74 | 65 6d 29 20 22 c0 09 41 |ar #[(it|em) "..A|
|000012b0| 21 83 0d 00 09 41 c2 89 | 93 87 09 41 3c 85 17 00 |!....A..|...A<...|
|000012c0| c3 09 41 21 87 22 20 5b | 6d 61 72 6b 65 72 70 20 |..A!." [|markerp |
|000012d0| 69 74 65 6d 20 6e 69 6c | 20 69 6d 65 6e 75 2d 2d |item nil| imenu--|
|000012e0| 63 6c 65 61 6e 75 70 5d | 20 33 5d 20 61 6c 69 73 |cleanup]| 3] alis|
|000012f0| 74 20 74 5d 20 33 5d 5d | 20 33 29 0a 28 64 65 66 |t t] 3]]| 3).(def|
|00001300| 61 6c 69 61 73 20 27 69 | 6d 65 6e 75 2d 64 65 66 |alias 'i|menu-def|
|00001310| 61 75 6c 74 2d 63 72 65 | 61 74 65 2d 69 6e 64 65 |ault-cre|ate-inde|
|00001320| 78 2d 66 75 6e 63 74 69 | 6f 6e 20 23 5b 6e 69 6c |x-functi|on #[nil|
|00001330| 20 22 08 c1 3d 83 09 00 | c2 20 87 08 c3 3d 83 12 | "..=...|. ...=..|
|00001340| 00 c2 20 87 08 c4 3d 83 | 1b 00 c5 20 87 08 c6 3d |.. ...=.|... ...=|
|00001350| 83 24 00 c7 20 87 c8 0e | 09 21 83 32 00 c8 0e 5c |.$.. ...|.!.2...\|
|00001360| 6e 21 84 38 00 cb cc 0e | 0d 5c 22 88 ce 89 89 1e |n!.8....|.\".....|
|00001370| 0f 1e 10 1e 11 64 62 88 | 0e 12 83 58 00 d3 1e 14 |.....db.|...X....|
|00001380| d5 0e 12 0e 14 5c 22 88 | 0e 14 16 0f 29 0e 09 20 |.....\".|....).. |
|00001390| 83 96 00 0e 12 83 7d 00 | d6 d7 21 89 1e 14 0e 0f |......}.|..!.....|
|000013a0| d8 5c 5c 56 83 7c 00 d5 | 0e 12 0e 14 5c 22 88 0e |.\\V.|..|....\"..|
|000013b0| 14 16 0f 29 8a 0e 5c 6e | 20 16 10 29 0e 10 3b 83 |...)..\n| ..)..;.|
|000013c0| 58 00 0e 10 60 42 0e 11 | 42 16 11 82 58 00 0e 12 |X...`B..|B...X...|
|000013d0| 83 aa 00 d9 1e 14 d5 0e | 12 0e 14 5c 22 88 0e 14 |........|...\"...|
|000013e0| 16 0f 29 0e 11 2b 87 22 | 20 5b 6d 61 6a 6f 72 2d |..)..+."| [major-|
|000013f0| 6d 6f 64 65 20 65 6d 61 | 63 73 2d 6c 69 73 70 2d |mode ema|cs-lisp-|
|00001400| 6d 6f 64 65 20 69 6d 65 | 6e 75 2d 65 78 61 6d 70 |mode ime|nu-examp|
|00001410| 6c 65 2d 2d 63 72 65 61 | 74 65 2d 6c 69 73 70 2d |le--crea|te-lisp-|
|00001420| 69 6e 64 65 78 20 6c 69 | 73 70 2d 6d 6f 64 65 20 |index li|sp-mode |
|00001430| 63 2b 2b 2d 6d 6f 64 65 | 20 69 6d 65 6e 75 2d 65 |c++-mode| imenu-e|
|00001440| 78 61 6d 70 6c 65 2d 2d | 63 72 65 61 74 65 2d 63 |xample--|create-c|
|00001450| 2b 2b 2d 69 6e 64 65 78 | 20 63 2d 6d 6f 64 65 20 |++-index| c-mode |
|00001460| 69 6d 65 6e 75 2d 65 78 | 61 6d 70 6c 65 2d 2d 63 |imenu-ex|ample--c|
|00001470| 72 65 61 74 65 2d 63 2d | 69 6e 64 65 78 20 66 62 |reate-c-|index fb|
|00001480| 6f 75 6e 64 70 20 69 6d | 65 6e 75 2d 70 72 65 76 |oundp im|enu-prev|
|00001490| 2d 69 6e 64 65 78 2d 70 | 6f 73 69 74 69 6f 6e 2d |-index-p|osition-|
|000014a0| 66 75 6e 63 74 69 6f 6e | 20 69 6d 65 6e 75 2d 65 |function| imenu-e|
|000014b0| 78 74 72 61 63 74 2d 69 | 6e 64 65 78 2d 6e 61 6d |xtract-i|ndex-nam|
|000014c0| 65 2d 66 75 6e 63 74 69 | 6f 6e 20 65 72 72 6f 72 |e-functi|on error|
|000014d0| 20 22 54 68 65 20 6d 6f | 64 65 20 5c 22 25 73 5c | "The mo|de \"%s\|
|000014e0| 22 20 64 6f 65 73 20 6e | 6f 74 20 74 61 6b 65 20 |" does n|ot take |
|000014f0| 66 75 6c 6c 20 61 64 76 | 61 6e 74 61 67 65 20 6f |full adv|antage o|
|00001500| 66 20 69 6d 65 6e 75 2e | 65 6c 20 79 65 74 2e 22 |f imenu.|el yet."|
|00001510| 20 6d 6f 64 65 2d 6e 61 | 6d 65 20 6e 69 6c 20 70 | mode-na|me nil p|
|00001520| 72 65 76 2d 70 6f 73 20 | 6e 61 6d 65 20 69 6e 64 |rev-pos |name ind|
|00001530| 65 78 2d 61 6c 69 73 74 | 20 69 6d 65 6e 75 2d 73 |ex-alist| imenu-s|
|00001540| 63 61 6e 6e 69 6e 67 2d | 6d 65 73 73 61 67 65 20 |canning-|message |
|00001550| 30 20 70 6f 73 20 6d 65 | 73 73 61 67 65 20 69 6d |0 pos me|ssage im|
|00001560| 65 6e 75 2d 2d 72 65 6c | 61 74 69 76 65 2d 70 6f |enu--rel|ative-po|
|00001570| 73 69 74 69 6f 6e 20 74 | 20 35 20 31 30 30 5d 20 |sition t| 5 100] |
|00001580| 34 20 22 5c 0a 2a 57 72 | 61 70 70 65 72 20 66 6f |4 "\.*Wr|apper fo|
|00001590| 72 20 69 6e 64 65 78 20 | 73 65 61 72 63 68 69 6e |r index |searchin|
|000015a0| 67 20 66 75 6e 63 74 69 | 6f 6e 73 2e 0a 0a 4d 6f |g functi|ons...Mo|
|000015b0| 76 65 73 20 70 6f 69 6e | 74 20 74 6f 20 65 6e 64 |ves poin|t to end|
|000015c0| 20 6f 66 20 62 75 66 66 | 65 72 20 61 6e 64 20 74 | of buff|er and t|
|000015d0| 68 65 6e 20 72 65 70 65 | 61 74 65 64 6c 79 20 63 |hen repe|atedly c|
|000015e0| 61 6c 6c 73 0a 60 69 6d | 65 6e 75 2d 70 72 65 76 |alls.`im|enu-prev|
|000015f0| 2d 69 6e 64 65 78 2d 70 | 6f 73 69 74 69 6f 6e 2d |-index-p|osition-|
|00001600| 66 75 6e 63 74 69 6f 6e | 27 20 61 6e 64 20 60 69 |function|' and `i|
|00001610| 6d 65 6e 75 2d 65 78 74 | 72 61 63 74 2d 69 6e 64 |menu-ext|ract-ind|
|00001620| 65 78 2d 6e 61 6d 65 2d | 66 75 6e 63 74 69 6f 6e |ex-name-|function|
|00001630| 27 2e 0a 54 68 65 69 72 | 20 72 65 73 75 6c 74 73 |'..Their| results|
|00001640| 20 61 72 65 20 67 61 74 | 68 65 72 65 64 20 69 6e | are gat|hered in|
|00001650| 74 6f 20 61 6e 20 69 6e | 64 65 78 20 61 6c 69 73 |to an in|dex alis|
|00001660| 74 2e 22 5d 29 0a 28 62 | 79 74 65 2d 63 6f 64 65 |t."]).(b|yte-code|
|00001670| 20 22 c0 c1 c2 5c 22 88 | c0 c3 c4 5c 22 87 22 20 | "...\".|...\"." |
|00001680| 5b 64 65 66 61 6c 69 61 | 73 20 69 6d 65 6e 75 2d |[defalia|s imenu-|
|00001690| 2d 72 65 70 6c 61 63 65 | 2d 73 70 61 63 65 73 20 |-replace|-spaces |
|000016a0| 23 5b 28 6e 61 6d 65 20 | 72 65 70 6c 61 63 65 6d |#[(name |replacem|
|000016b0| 65 6e 74 29 20 22 c0 c1 | 5c 6e c3 23 87 22 20 5b |ent) "..|\n.#." [|
|000016c0| 6d 61 70 63 6f 6e 63 61 | 74 20 23 5b 28 63 68 29 |mapconca|t #[(ch)|
|000016d0| 20 22 c0 09 c2 5c 22 83 | 09 00 0b 87 c4 09 21 87 | "...\".|......!.|
|000016e0| 22 20 5b 63 68 61 72 2d | 65 71 75 61 6c 20 63 68 |" [char-|equal ch|
|000016f0| 20 33 32 20 72 65 70 6c | 61 63 65 6d 65 6e 74 20 | 32 repl|acement |
|00001700| 63 68 61 72 2d 74 6f 2d | 73 74 72 69 6e 67 5d 20 |char-to-|string] |
|00001710| 33 5d 20 6e 61 6d 65 20 | 22 22 5d 20 34 5d 20 69 |3] name |""] 4] i|
|00001720| 6d 65 6e 75 2d 2d 66 6c | 61 74 74 65 6e 2d 69 6e |menu--fl|atten-in|
|00001730| 64 65 78 2d 61 6c 69 73 | 74 20 23 5b 28 69 6e 64 |dex-alis|t #[(ind|
|00001740| 65 78 2d 61 6c 69 73 74 | 20 26 6f 70 74 69 6f 6e |ex-alist| &option|
|00001750| 61 6c 20 63 6f 6e 63 61 | 74 2d 6e 61 6d 65 73 20 |al conca|t-names |
|00001760| 70 72 65 66 69 78 29 20 | 22 c0 c1 5c 6e 5c 22 87 |prefix) |"..\n\".|
|00001770| 22 20 5b 6d 61 70 63 61 | 6e 20 23 5b 28 69 74 65 |" [mapca|n #[(ite|
|00001780| 6d 29 20 22 08 40 19 08 | 41 1a 0b 85 16 00 5c 66 |m) ".@..|A.....\f|
|00001790| 83 15 00 5c 66 0d 09 51 | 82 16 00 09 1e 06 c7 5c |...\f..Q|.......\|
|000017a0| 6e 21 84 23 00 5c 6e a7 | 83 2b 00 0e 06 5c 6e 42 |n!.#.\n.|.+...\nB|
|000017b0| 43 82 30 00 c8 5c 6e 0e | 06 5c 22 2b 87 22 20 5b |C.0..\n.|.\"+." [|
|000017c0| 69 74 65 6d 20 6e 61 6d | 65 20 70 6f 73 20 63 6f |item nam|e pos co|
|000017d0| 6e 63 61 74 2d 6e 61 6d | 65 73 20 70 72 65 66 69 |ncat-nam|es prefi|
|000017e0| 78 20 69 6d 65 6e 75 2d | 6c 65 76 65 6c 2d 73 65 |x imenu-|level-se|
|000017f0| 70 61 72 61 74 6f 72 20 | 6e 65 77 2d 70 72 65 66 |parator |new-pref|
|00001800| 69 78 20 6d 61 72 6b 65 | 72 70 20 69 6d 65 6e 75 |ix marke|rp imenu|
|00001810| 2d 2d 66 6c 61 74 74 65 | 6e 2d 69 6e 64 65 78 2d |--flatte|n-index-|
|00001820| 61 6c 69 73 74 5d 20 33 | 5d 20 69 6e 64 65 78 2d |alist] 3|] index-|
|00001830| 61 6c 69 73 74 5d 20 33 | 5d 5d 20 33 29 0a 28 64 |alist] 3|]] 3).(d|
|00001840| 65 66 61 6c 69 61 73 20 | 27 69 6d 65 6e 75 2d 2d |efalias |'imenu--|
|00001850| 63 6f 6d 70 6c 65 74 69 | 6f 6e 2d 62 75 66 66 65 |completi|on-buffe|
|00001860| 72 20 23 5b 28 69 6e 64 | 65 78 2d 61 6c 69 73 74 |r #[(ind|ex-alist|
|00001870| 20 26 6f 70 74 69 6f 6e | 61 6c 20 70 72 6f 6d 70 | &option|al promp|
|00001880| 74 29 20 22 c0 89 c1 c2 | 0b 5c 22 1c 1d 1e 06 c7 |t) "....|.\".....|
|00001890| 8b 88 0e 06 3b 84 17 00 | c0 82 3a 00 0e 06 0e 08 |....;...|..:.....|
|000018a0| 40 98 83 24 00 c9 82 3a | 00 ca 0e 06 5c 66 5c 22 |@..$...:|....\f\"|
|000018b0| 89 15 41 3c 83 39 00 cb | 0d 41 0e 5c 66 5c 22 82 |..A<.9..|.A.\f\".|
|000018c0| 3a 00 0d 2b 87 22 20 5b | 6e 69 6c 20 6d 61 70 63 |:..+." [|nil mapc|
|000018d0| 61 72 20 23 5b 28 69 74 | 65 6d 29 20 22 c0 09 40 |ar #[(it|em) "..@|
|000018e0| 5c 6e 5c 22 09 41 42 87 | 22 20 5b 69 6d 65 6e 75 |\n\".AB.|" [imenu|
|000018f0| 2d 2d 72 65 70 6c 61 63 | 65 2d 73 70 61 63 65 73 |--replac|e-spaces|
|00001900| 20 69 74 65 6d 20 69 6d | 65 6e 75 2d 73 70 61 63 | item im|enu-spac|
|00001910| 65 2d 72 65 70 6c 61 63 | 65 6d 65 6e 74 5d 20 33 |e-replac|ement] 3|
|00001920| 5d 20 69 6e 64 65 78 2d | 61 6c 69 73 74 20 70 72 |] index-|alist pr|
|00001930| 65 70 61 72 65 64 2d 69 | 6e 64 65 78 2d 61 6c 69 |epared-i|ndex-ali|
|00001940| 73 74 20 63 68 6f 69 63 | 65 20 6e 61 6d 65 20 28 |st choic|e name (|
|00001950| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c0 90 c1 c2 |(byte-co|de "....|
|00001960| c3 5c 66 5c 22 21 91 88 | c5 1e 06 c7 0e 08 86 14 |.\f\"!..|........|
|00001970| 00 c9 5c 66 ca cb ca cc | 26 06 16 0d 29 ca 87 22 |..\f....|&...).."|
|00001980| 20 5b 22 2a 43 6f 6d 70 | 6c 65 74 69 6f 6e 73 2a | ["*Comp|letions*|
|00001990| 22 20 64 69 73 70 6c 61 | 79 2d 63 6f 6d 70 6c 65 |" displa|y-comple|
|000019a0| 74 69 6f 6e 2d 6c 69 73 | 74 20 61 6c 6c 2d 63 6f |tion-lis|t all-co|
|000019b0| 6d 70 6c 65 74 69 6f 6e | 73 20 22 22 20 70 72 65 |mpletion|s "" pre|
|000019c0| 70 61 72 65 64 2d 69 6e | 64 65 78 2d 61 6c 69 73 |pared-in|dex-alis|
|000019d0| 74 20 23 5b 6e 69 6c 20 | 22 70 18 8a c1 71 88 08 |t #[nil |"p...q..|
|000019e0| 89 12 2a 87 22 20 5b 62 | 75 66 66 65 72 20 22 2a |..*." [b|uffer "*|
|000019f0| 43 6f 6d 70 6c 65 74 69 | 6f 6e 73 2a 22 20 63 6f |Completi|ons*" co|
|00001a00| 6d 70 6c 65 74 69 6f 6e | 2d 72 65 66 65 72 65 6e |mpletion|-referen|
|00001a10| 63 65 2d 62 75 66 66 65 | 72 5d 20 32 5d 20 6d 69 |ce-buffe|r] 2] mi|
|00001a20| 6e 69 62 75 66 66 65 72 | 2d 73 65 74 75 70 2d 68 |nibuffer|-setup-h|
|00001a30| 6f 6f 6b 20 63 6f 6d 70 | 6c 65 74 69 6e 67 2d 72 |ook comp|leting-r|
|00001a40| 65 61 64 20 70 72 6f 6d | 70 74 20 22 49 6e 64 65 |ead prom|pt "Inde|
|00001a50| 78 20 69 74 65 6d 3a 20 | 22 20 6e 69 6c 20 74 20 |x item: |" nil t |
|00001a60| 69 6d 65 6e 75 2d 2d 68 | 69 73 74 6f 72 79 2d 6c |imenu--h|istory-l|
|00001a70| 69 73 74 20 6e 61 6d 65 | 5d 20 37 29 29 20 69 6d |ist name|] 7)) im|
|00001a80| 65 6e 75 2d 2d 72 65 73 | 63 61 6e 2d 69 74 65 6d |enu--res|can-item|
|00001a90| 20 74 20 61 73 73 6f 63 | 20 69 6d 65 6e 75 2d 2d | t assoc| imenu--|
|00001aa0| 63 6f 6d 70 6c 65 74 69 | 6f 6e 2d 62 75 66 66 65 |completi|on-buffe|
|00001ab0| 72 20 70 72 6f 6d 70 74 | 5d 20 36 20 22 5c 0a 4c |r prompt|] 6 "\.L|
|00001ac0| 65 74 20 74 68 65 20 75 | 73 65 72 20 73 65 6c 65 |et the u|ser sele|
|00001ad0| 63 74 20 66 72 6f 6d 20 | 49 4e 44 45 58 2d 41 4c |ct from |INDEX-AL|
|00001ae0| 49 53 54 20 69 6e 20 61 | 20 63 6f 6d 70 6c 65 74 |IST in a| complet|
|00001af0| 69 6f 6e 20 62 75 66 66 | 65 72 20 77 69 74 68 20 |ion buff|er with |
|00001b00| 50 52 4f 4d 50 54 2e 0a | 0a 52 65 74 75 72 6e 73 |PROMPT..|.Returns|
|00001b10| 20 74 20 66 6f 72 20 72 | 65 73 63 61 6e 20 61 6e | t for r|escan an|
|00001b20| 64 20 6f 74 68 65 72 77 | 69 73 65 20 61 20 70 6f |d otherw|ise a po|
|00001b30| 73 69 74 69 6f 6e 20 6e | 75 6d 62 65 72 2e 22 5d |sition n|umber."]|
|00001b40| 29 0a 28 64 65 66 61 6c | 69 61 73 20 27 69 6d 65 |).(defal|ias 'ime|
|00001b50| 6e 75 2d 2d 6d 6f 75 73 | 65 2d 6d 65 6e 75 20 23 |nu--mous|e-menu #|
|00001b60| 5b 28 69 6e 64 65 78 2d | 61 6c 69 73 74 20 65 76 |[(index-|alist ev|
|00001b70| 65 6e 74 20 26 6f 70 74 | 69 6f 6e 61 6c 20 74 69 |ent &opt|ional ti|
|00001b80| 74 6c 65 29 20 22 c0 09 | 83 2b 00 c2 c3 5c 66 1d |tle) "..|.+...\f.|
|00001b90| 1e 06 0d 3a 83 1d 00 0d | 89 41 15 40 0e 06 42 16 |...:....|.A.@..B.|
|00001ba0| 06 82 0b 00 0e 06 9f 0e | 06 0d a1 88 2a 09 5c 22 |........|....*.\"|
|00001bb0| 82 2c 00 5c 66 0e 07 86 | 33 00 c8 20 5c 22 1e 09 |.,.\f...|3.. \"..|
|00001bc0| c3 1e 5c 6e cb 0e 5c 66 | 0e 09 5c 22 89 16 5c 6e |..\n..\f|..\"..\n|
|00001bd0| c3 3d 83 4c 00 0e 5c 6e | 82 86 00 0e 5c 6e 3c 83 |.=.L..\n|....\n<.|
|00001be0| 74 00 cd 0e 5c 6e 0e 5c | 66 0e 07 83 6a 00 0e 07 |t...\n.\|f...j...|
|00001bf0| 0e 0e cf 0e 5c 6e 5c 66 | 5c 22 40 51 82 70 00 cf |....\n\f|\"@Q.p..|
|00001c00| 0e 5c 6e 5c 66 5c 22 40 | 23 82 86 00 0e 5c 6e 0e |.\n\f\"@|#....\n.|
|00001c10| 10 41 55 83 81 00 d1 82 | 86 00 cf 0e 5c 6e 5c 66 |.AU.....|....\n\f|
|00001c20| 5c 22 2a 87 22 20 5b 69 | 6d 65 6e 75 2d 2d 73 70 |\"*." [i|menu--sp|
|00001c30| 6c 69 74 2d 6d 65 6e 75 | 20 69 6d 65 6e 75 2d 73 |lit-menu| imenu-s|
|00001c40| 6f 72 74 2d 66 75 6e 63 | 74 69 6f 6e 20 73 6f 72 |ort-func|tion sor|
|00001c50| 74 20 6e 69 6c 20 69 6e | 64 65 78 2d 61 6c 69 73 |t nil in|dex-alis|
|00001c60| 74 20 6f 6c 64 6c 69 73 | 74 20 72 65 73 20 74 69 |t oldlis|t res ti|
|00001c70| 74 6c 65 20 62 75 66 66 | 65 72 2d 6e 61 6d 65 20 |tle buff|er-name |
|00001c80| 6d 65 6e 75 20 70 6f 73 | 69 74 69 6f 6e 20 78 2d |menu pos|ition x-|
|00001c90| 70 6f 70 75 70 2d 6d 65 | 6e 75 20 65 76 65 6e 74 |popup-me|nu event|
|00001ca0| 20 69 6d 65 6e 75 2d 2d | 6d 6f 75 73 65 2d 6d 65 | imenu--|mouse-me|
|00001cb0| 6e 75 20 69 6d 65 6e 75 | 2d 6c 65 76 65 6c 2d 73 |nu imenu|-level-s|
|00001cc0| 65 70 61 72 61 74 6f 72 | 20 72 61 73 73 71 20 69 |eparator| rassq i|
|00001cd0| 6d 65 6e 75 2d 2d 72 65 | 73 63 61 6e 2d 69 74 65 |menu--re|scan-ite|
|00001ce0| 6d 20 74 5d 20 39 20 22 | 5c 0a 4c 65 74 20 74 68 |m t] 9 "|\.Let th|
|00001cf0| 65 20 75 73 65 72 20 73 | 65 6c 65 63 74 20 66 72 |e user s|elect fr|
|00001d00| 6f 6d 20 61 20 62 75 66 | 66 65 72 20 69 6e 64 65 |om a buf|fer inde|
|00001d10| 78 20 66 72 6f 6d 20 61 | 20 6d 6f 75 73 65 20 6d |x from a| mouse m|
|00001d20| 65 6e 75 2e 0a 0a 49 4e | 44 45 58 2d 41 4c 49 53 |enu...IN|DEX-ALIS|
|00001d30| 54 20 69 73 20 74 68 65 | 20 62 75 66 66 65 72 20 |T is the| buffer |
|00001d40| 69 6e 64 65 78 20 61 6e | 64 20 45 56 45 4e 54 20 |index an|d EVENT |
|00001d50| 69 73 20 61 20 6d 6f 75 | 73 65 20 65 76 65 6e 74 |is a mou|se event|
|00001d60| 2e 0a 0a 52 65 74 75 72 | 6e 73 20 74 20 66 6f 72 |...Retur|ns t for|
|00001d70| 20 72 65 73 63 61 6e 20 | 61 6e 64 20 6f 74 68 65 | rescan |and othe|
|00001d80| 72 77 69 73 65 20 61 20 | 70 6f 73 69 74 69 6f 6e |rwise a |position|
|00001d90| 20 6e 75 6d 62 65 72 2e | 22 5d 29 0a 28 64 65 66 | number.|"]).(def|
|00001da0| 61 6c 69 61 73 20 27 69 | 6d 65 6e 75 2d 63 68 6f |alias 'i|menu-cho|
|00001db0| 6f 73 65 2d 62 75 66 66 | 65 72 2d 69 6e 64 65 78 |ose-buff|er-index|
|00001dc0| 20 23 5b 28 26 6f 70 74 | 69 6f 6e 61 6c 20 70 72 | #[(&opt|ional pr|
|00001dd0| 6f 6d 70 74 20 61 6c 69 | 73 74 29 20 22 c0 09 3c |ompt ali|st) "..<|
|00001de0| c2 1b 1c 1d 5c 66 83 26 | 00 09 89 1e 06 41 40 29 |....\f.&|.....A@)|
|00001df0| 89 1e 07 40 29 1e 08 c9 | 0e 08 21 84 25 00 ca 0e |...@)...|..!.%...|
|00001e00| 08 21 88 29 0b c2 3d 83 | 60 00 0e 0b 83 36 00 0e |.!.)..=.|`....6..|
|00001e10| 0b 82 38 00 cc 20 15 5c | 66 83 49 00 0e 0d 84 49 |..8.. .\|f.I....I|
|00001e20| 00 ce 0d 09 5c 22 82 4e | 00 cf 0d 0e 10 5c 22 89 |....\".N|.....\".|
|00001e30| 13 c2 3d 83 26 00 d1 20 | 83 26 00 c0 16 12 82 26 |..=.&.. |.&.....&|
|00001e40| 00 0b 2b 87 22 20 5b 6e | 69 6c 20 6c 61 73 74 2d |..+." [n|il last-|
|00001e50| 6e 6f 6e 6d 65 6e 75 2d | 65 76 65 6e 74 20 74 20 |nonmenu-|event t |
|00001e60| 72 65 73 75 6c 74 20 6d | 6f 75 73 65 2d 74 72 69 |result m|ouse-tri|
|00001e70| 67 67 65 72 65 64 20 69 | 6e 64 65 78 2d 61 6c 69 |ggered i|ndex-ali|
|00001e80| 73 74 20 65 76 65 6e 74 | 20 70 6f 73 69 74 69 6f |st event| positio|
|00001e90| 6e 20 77 69 6e 64 6f 77 | 20 66 72 61 6d 65 70 20 |n window| framep |
|00001ea0| 73 65 6c 65 63 74 2d 77 | 69 6e 64 6f 77 20 61 6c |select-w|indow al|
|00001eb0| 69 73 74 20 69 6d 65 6e | 75 2d 2d 6d 61 6b 65 2d |ist imen|u--make-|
|00001ec0| 69 6e 64 65 78 2d 61 6c | 69 73 74 20 69 6d 65 6e |index-al|ist imen|
|00001ed0| 75 2d 61 6c 77 61 79 73 | 2d 75 73 65 2d 63 6f 6d |u-always|-use-com|
|00001ee0| 70 6c 65 74 69 6f 6e 2d | 62 75 66 66 65 72 2d 70 |pletion-|buffer-p|
|00001ef0| 20 69 6d 65 6e 75 2d 2d | 6d 6f 75 73 65 2d 6d 65 | imenu--|mouse-me|
|00001f00| 6e 75 20 69 6d 65 6e 75 | 2d 2d 63 6f 6d 70 6c 65 |nu imenu|--comple|
|00001f10| 74 69 6f 6e 2d 62 75 66 | 66 65 72 20 70 72 6f 6d |tion-buf|fer prom|
|00001f20| 70 74 20 69 6d 65 6e 75 | 2d 2d 63 6c 65 61 6e 75 |pt imenu|--cleanu|
|00001f30| 70 20 69 6d 65 6e 75 2d | 2d 69 6e 64 65 78 2d 61 |p imenu-|-index-a|
|00001f40| 6c 69 73 74 5d 20 34 20 | 22 5c 0a 4c 65 74 20 74 |list] 4 |"\.Let t|
|00001f50| 68 65 20 75 73 65 72 20 | 73 65 6c 65 63 74 20 66 |he user |select f|
|00001f60| 72 6f 6d 20 61 20 62 75 | 66 66 65 72 20 69 6e 64 |rom a bu|ffer ind|
|00001f70| 65 78 20 61 6e 64 20 72 | 65 74 75 72 6e 20 74 68 |ex and r|eturn th|
|00001f80| 65 20 63 68 6f 73 65 6e | 20 69 6e 64 65 78 2e 0a |e chosen| index..|
|00001f90| 0a 49 66 20 74 68 65 20 | 75 73 65 72 20 6f 72 69 |.If the |user ori|
|00001fa0| 67 69 6e 61 6c 6c 79 20 | 61 63 74 69 76 61 74 65 |ginally |activate|
|00001fb0| 64 20 74 68 69 73 20 66 | 75 6e 63 74 69 6f 6e 20 |d this f|unction |
|00001fc0| 77 69 74 68 20 74 68 65 | 20 6d 6f 75 73 65 2c 20 |with the| mouse, |
|00001fd0| 61 20 6d 6f 75 73 65 0a | 6d 65 6e 75 20 69 73 20 |a mouse.|menu is |
|00001fe0| 75 73 65 64 2e 20 20 4f | 74 68 65 72 77 69 73 65 |used. O|therwise|
|00001ff0| 20 61 20 63 6f 6d 70 6c | 65 74 69 6f 6e 20 62 75 | a compl|etion bu|
|00002000| 66 66 65 72 20 69 73 20 | 75 73 65 64 20 61 6e 64 |ffer is |used and|
|00002010| 20 74 68 65 20 75 73 65 | 72 20 69 73 0a 70 72 6f | the use|r is.pro|
|00002020| 6d 70 74 65 64 20 77 69 | 74 68 20 50 52 4f 4d 50 |mpted wi|th PROMP|
|00002030| 54 2e 0a 0a 49 66 20 79 | 6f 75 20 63 61 6c 6c 20 |T...If y|ou call |
|00002040| 74 68 69 73 20 66 75 6e | 63 74 69 6f 6e 20 77 69 |this fun|ction wi|
|00002050| 74 68 20 69 6e 64 65 78 | 20 61 6c 69 73 74 20 41 |th index| alist A|
|00002060| 4c 49 53 54 2c 20 74 68 | 65 6e 20 69 74 20 6c 65 |LIST, th|en it le|
|00002070| 74 73 20 74 68 65 20 75 | 73 65 72 0a 73 65 6c 65 |ts the u|ser.sele|
|00002080| 63 74 20 66 72 6f 6d 20 | 41 4c 49 53 54 2e 0a 0a |ct from |ALIST...|
|00002090| 57 69 74 68 20 6e 6f 20 | 69 6e 64 65 78 20 61 6c |With no |index al|
|000020a0| 69 73 74 20 41 4c 49 53 | 54 2c 20 69 74 20 63 61 |ist ALIS|T, it ca|
|000020b0| 6c 6c 73 20 60 69 6d 65 | 6e 75 2d 2d 6d 61 6b 65 |lls `ime|nu--make|
|000020c0| 2d 69 6e 64 65 78 2d 61 | 6c 69 73 74 27 20 74 6f |-index-a|list' to|
|000020d0| 0a 63 72 65 61 74 65 20 | 74 68 65 20 69 6e 64 65 |.create |the inde|
|000020e0| 78 20 61 6c 69 73 74 2e | 0a 0a 49 66 20 60 69 6d |x alist.|..If `im|
|000020f0| 65 6e 75 2d 61 6c 77 61 | 79 73 2d 75 73 65 2d 63 |enu-alwa|ys-use-c|
|00002100| 6f 6d 70 6c 65 74 69 6f | 6e 2d 62 75 66 66 65 72 |ompletio|n-buffer|
|00002110| 2d 70 27 20 69 73 20 6e | 6f 6e 2d 6e 69 6c 2c 20 |-p' is n|on-nil, |
|00002120| 74 68 65 6e 20 74 68 65 | 0a 63 6f 6d 70 6c 65 74 |then the|.complet|
|00002130| 69 6f 6e 20 62 75 66 66 | 65 72 20 69 73 20 61 6c |ion buff|er is al|
|00002140| 77 61 79 73 20 75 73 65 | 64 2c 20 6e 6f 20 6d 61 |ways use|d, no ma|
|00002150| 74 74 65 72 20 69 66 20 | 74 68 65 20 6d 6f 75 73 |tter if |the mous|
|00002160| 65 20 77 61 73 20 75 73 | 65 64 20 6f 72 0a 6e 6f |e was us|ed or.no|
|00002170| 74 2e 0a 0a 54 68 65 20 | 72 65 74 75 72 6e 65 64 |t...The |returned|
|00002180| 20 76 61 6c 75 65 20 69 | 73 20 6f 6e 20 74 68 65 | value i|s on the|
|00002190| 20 66 6f 72 6d 20 28 49 | 4e 44 45 58 2d 4e 41 4d | form (I|NDEX-NAM|
|000021a0| 45 20 2e 20 49 4e 44 45 | 58 2d 50 4f 53 49 54 49 |E . INDE|X-POSITI|
|000021b0| 4f 4e 29 2e 22 5d 29 0a | 28 64 65 66 61 6c 69 61 |ON)."]).|(defalia|
|000021c0| 73 20 27 69 6d 65 6e 75 | 2d 61 64 64 2d 74 6f 2d |s 'imenu|-add-to-|
|000021d0| 6d 65 6e 75 62 61 72 20 | 23 5b 28 6e 61 6d 65 29 |menubar |#[(name)|
|000021e0| 20 22 08 85 5c 66 00 c1 | c2 20 c3 5c 66 c5 42 23 | "..\f..|. .\f.B#|
|000021f0| 87 22 20 5b 77 69 6e 64 | 6f 77 2d 73 79 73 74 65 |." [wind|ow-syste|
|00002200| 6d 20 64 65 66 69 6e 65 | 2d 6b 65 79 20 63 75 72 |m define|-key cur|
|00002210| 72 65 6e 74 2d 6c 6f 63 | 61 6c 2d 6d 61 70 20 5b |rent-loc|al-map [|
|00002220| 6d 65 6e 75 2d 62 61 72 | 20 69 6e 64 65 78 5d 20 |menu-bar| index] |
|00002230| 6e 61 6d 65 20 69 6d 65 | 6e 75 5d 20 35 20 22 5c |name ime|nu] 5 "\|
|00002240| 0a 41 64 64 73 20 61 6e | 20 5c 22 69 6d 65 6e 75 |.Adds an| \"imenu|
|00002250| 5c 22 20 65 6e 74 72 79 | 20 74 6f 20 74 68 65 20 |\" entry| to the |
|00002260| 6d 65 6e 75 62 61 72 20 | 66 6f 72 20 74 68 65 20 |menubar |for the |
|00002270| 0a 63 75 72 72 65 6e 74 | 20 6c 6f 63 61 6c 20 6b |.current| local k|
|00002280| 65 79 6d 61 70 2e 0a 4e | 41 4d 45 20 69 73 20 74 |eymap..N|AME is t|
|00002290| 68 65 20 73 74 72 69 6e | 67 20 6e 61 6d 69 6e 67 |he strin|g naming|
|000022a0| 20 74 68 65 20 6d 65 6e | 75 20 74 6f 20 62 65 20 | the men|u to be |
|000022b0| 61 64 64 65 64 2e 0a 53 | 65 65 20 27 69 6d 65 6e |added..S|ee 'imen|
|000022c0| 75 27 20 66 6f 72 20 6d | 6f 72 65 20 69 6e 66 6f |u' for m|ore info|
|000022d0| 72 6d 61 74 69 6f 6e 2e | 22 20 22 73 4d 65 6e 75 |rmation.|" "sMenu|
|000022e0| 20 6e 61 6d 65 3a 20 22 | 5d 29 0a 28 64 65 66 61 | name: "|]).(defa|
|000022f0| 6c 69 61 73 20 27 69 6d | 65 6e 75 20 23 5b 6e 69 |lias 'im|enu #[ni|
|00002300| 6c 20 22 c0 20 89 19 85 | 1c 00 c2 20 88 c3 09 41 |l ". ...|... ...A|
|00002310| 21 83 19 00 c4 09 41 21 | 62 82 1c 00 09 41 62 29 |!.....A!|b....Ab)|
|00002320| 87 22 20 5b 69 6d 65 6e | 75 2d 63 68 6f 6f 73 65 |." [imen|u-choose|
|00002330| 2d 62 75 66 66 65 72 2d | 69 6e 64 65 78 20 69 6e |-buffer-|index in|
|00002340| 64 65 78 2d 69 74 65 6d | 20 70 75 73 68 2d 6d 61 |dex-item| push-ma|
|00002350| 72 6b 20 6d 61 72 6b 65 | 72 70 20 6d 61 72 6b 65 |rk marke|rp marke|
|00002360| 72 2d 70 6f 73 69 74 69 | 6f 6e 5d 20 33 20 22 5c |r-positi|on] 3 "\|
|00002370| 0a 4a 75 6d 70 20 74 6f | 20 61 20 70 6c 61 63 65 |.Jump to| a place|
|00002380| 20 69 6e 20 74 68 65 20 | 62 75 66 66 65 72 20 63 | in the |buffer c|
|00002390| 68 6f 73 65 6e 20 75 73 | 69 6e 67 20 61 20 62 75 |hosen us|ing a bu|
|000023a0| 66 66 65 72 20 6d 65 6e | 75 20 6f 72 20 6d 6f 75 |ffer men|u or mou|
|000023b0| 73 65 20 6d 65 6e 75 2e | 0a 53 65 65 20 60 69 6d |se menu.|.See `im|
|000023c0| 65 6e 75 2d 63 68 6f 6f | 73 65 2d 62 75 66 66 65 |enu-choo|se-buffe|
|000023d0| 72 2d 69 6e 64 65 78 27 | 20 66 6f 72 20 6d 6f 72 |r-index'| for mor|
|000023e0| 65 20 69 6e 66 6f 72 6d | 61 74 69 6f 6e 2e 22 20 |e inform|ation." |
|000023f0| 6e 69 6c 5d 29 0a 28 62 | 79 74 65 2d 63 6f 64 65 |nil]).(b|yte-code|
|00002400| 20 22 c0 c1 c2 5c 22 88 | c0 c3 c4 5c 22 88 c0 c5 | "...\".|...\"...|
|00002410| c6 5c 22 88 c7 c8 21 84 | 1e 00 c9 ca 89 cb cc b0 |.\"...!.|........|
|00002420| 05 16 08 c0 cd ce 5c 22 | 88 c7 cf 21 84 32 00 d0 |......\"|...!.2..|
|00002430| d1 89 cb d2 b0 05 16 0f | c0 d3 d4 5c 22 88 d5 d6 |........|...\"...|
|00002440| 21 87 22 20 5b 64 65 66 | 61 6c 69 61 73 20 69 6d |!." [def|alias im|
|00002450| 65 6e 75 2d 65 78 61 6d | 70 6c 65 2d 2d 6e 61 6d |enu-exam|ple--nam|
|00002460| 65 2d 61 6e 64 2d 70 6f | 73 69 74 69 6f 6e 20 23 |e-and-po|sition #|
|00002470| 5b 6e 69 6c 20 22 8a c0 | c1 21 88 60 c0 20 88 60 |[nil "..|.!.`. .`|
|00002480| c2 20 1b 1c 1d 0b 0d c6 | 93 88 0d 5c 66 7b 0b 2c |. ......|...\f{.,|
|00002490| 42 87 22 20 5b 66 6f 72 | 77 61 72 64 2d 73 65 78 |B." [for|ward-sex|
|000024a0| 70 20 2d 31 20 6d 61 6b | 65 2d 6d 61 72 6b 65 72 |p -1 mak|e-marker|
|000024b0| 20 6d 61 72 6b 65 72 20 | 65 6e 64 20 62 65 67 20 | marker |end beg |
|000024c0| 6e 69 6c 5d 20 33 5d 20 | 69 6d 65 6e 75 2d 65 78 |nil] 3] |imenu-ex|
|000024d0| 61 6d 70 6c 65 2d 2d 6c | 69 73 70 2d 65 78 74 72 |ample--l|isp-extr|
|000024e0| 61 63 74 2d 69 6e 64 65 | 78 2d 6e 61 6d 65 20 23 |act-inde|x-name #|
|000024f0| 5b 6e 69 6c 20 22 c0 20 | 19 c2 8e c3 c4 21 85 0f |[nil ". |.....!..|
|00002500| 00 c5 c6 c7 8f 2a 87 22 | 20 5b 6d 61 74 63 68 2d |.....*."| [match-|
|00002510| 64 61 74 61 20 6d 61 74 | 63 68 2d 64 61 74 61 20 |data mat|ch-data |
|00002520| 28 28 73 74 6f 72 65 2d | 6d 61 74 63 68 2d 64 61 |((store-|match-da|
|00002530| 74 61 20 6d 61 74 63 68 | 2d 64 61 74 61 29 29 20 |ta match|-data)) |
|00002540| 6c 6f 6f 6b 69 6e 67 2d | 61 74 20 22 28 64 65 66 |looking-|at "(def|
|00002550| 22 20 6e 69 6c 20 28 62 | 79 74 65 2d 63 6f 64 65 |" nil (b|yte-code|
|00002560| 20 22 c0 c1 21 88 c2 c3 | 21 88 60 c2 c4 21 88 60 | "..!...|!.`..!.`|
|00002570| 1d 89 1e 06 0d 7b 2a 87 | 22 20 5b 64 6f 77 6e 2d |.....{*.|" [down-|
|00002580| 6c 69 73 74 20 31 20 66 | 6f 72 77 61 72 64 2d 73 |list 1 f|orward-s|
|00002590| 65 78 70 20 32 20 2d 31 | 20 65 6e 64 20 62 65 67 |exp 2 -1| end beg|
|000025a0| 5d 20 34 29 20 28 28 65 | 72 72 6f 72 29 29 5d 20 |] 4) ((e|rror))] |
|000025b0| 33 5d 20 69 6d 65 6e 75 | 2d 65 78 61 6d 70 6c 65 |3] imenu|-example|
|000025c0| 2d 2d 63 72 65 61 74 65 | 2d 6c 69 73 70 2d 69 6e |--create|-lisp-in|
|000025d0| 64 65 78 20 23 5b 6e 69 | 6c 20 22 c0 89 89 89 89 |dex #[ni|l ".....|
|000025e0| 19 1a 1b 1c 1d 64 62 88 | 0e 06 83 20 00 c7 1e 08 |.....db.|... ....|
|000025f0| c9 0e 06 0e 08 5c 22 88 | 0e 08 11 29 ca 20 83 ab |.....\".|...). ..|
|00002600| 00 0e 06 83 42 00 cb cc | 21 89 1e 08 09 cd 5c 5c |....B...|!.....\\|
|00002610| 56 83 41 00 c9 0e 06 0e | 08 5c 22 88 0e 08 11 29 |V.A.....|.\"....)|
|00002620| ce 20 1e 0f d0 8e d1 d2 | 21 83 a7 00 8a d3 d4 21 |. ......|!......!|
|00002630| 88 d1 d5 21 83 65 00 d6 | d7 21 88 d8 20 5c 66 42 |...!.e..|.!.. \fB|
|00002640| 14 82 a6 00 d1 d9 21 83 | 77 00 d6 d7 21 88 d8 20 |......!.|w...!.. |
|00002650| 0d 42 15 82 a6 00 d1 da | 21 83 9d 00 d6 d7 21 88 |.B......|!.....!.|
|00002660| 60 53 66 db 55 83 95 00 | d6 dc 21 88 d3 d4 21 88 |`Sf.U...|..!...!.|
|00002670| d6 d4 21 88 d8 20 0b 42 | 13 82 a6 00 d6 d7 21 88 |..!.. .B|......!.|
|00002680| d8 20 5c 6e 42 12 29 2a | 82 20 00 0e 06 83 be 00 |. \nB.)*|. ......|
|00002690| dd 1e 08 c9 0e 06 0e 08 | 5c 22 88 0e 08 11 29 5c |........|\"....)\|
|000026a0| 66 83 ca 00 de df 21 5c | 66 42 0d 42 15 0b 83 d6 |f.....!\|fB.B....|
|000026b0| 00 de e0 21 0b 42 0d 42 | 15 5c 6e 83 e2 00 de e1 |...!.B.B|.\n.....|
|000026c0| 21 5c 6e 42 0d 42 15 0d | 2d 87 22 20 5b 6e 69 6c |!\nB.B..|-." [nil|
|000026d0| 20 70 72 65 76 2d 70 6f | 73 20 69 6e 64 65 78 2d | prev-po|s index-|
|000026e0| 75 6e 6b 6e 6f 77 6e 2d | 61 6c 69 73 74 20 69 6e |unknown-|alist in|
|000026f0| 64 65 78 2d 74 79 70 65 | 2d 61 6c 69 73 74 20 69 |dex-type|-alist i|
|00002700| 6e 64 65 78 2d 76 61 72 | 2d 61 6c 69 73 74 20 69 |ndex-var|-alist i|
|00002710| 6e 64 65 78 2d 61 6c 69 | 73 74 20 69 6d 65 6e 75 |ndex-ali|st imenu|
|00002720| 2d 73 63 61 6e 6e 69 6e | 67 2d 6d 65 73 73 61 67 |-scannin|g-messag|
|00002730| 65 20 30 20 70 6f 73 20 | 6d 65 73 73 61 67 65 20 |e 0 pos |message |
|00002740| 62 65 67 69 6e 6e 69 6e | 67 2d 6f 66 2d 64 65 66 |beginnin|g-of-def|
|00002750| 75 6e 20 69 6d 65 6e 75 | 2d 2d 72 65 6c 61 74 69 |un imenu|--relati|
|00002760| 76 65 2d 70 6f 73 69 74 | 69 6f 6e 20 74 20 35 20 |ve-posit|ion t 5 |
|00002770| 6d 61 74 63 68 2d 64 61 | 74 61 20 6d 61 74 63 68 |match-da|ta match|
|00002780| 2d 64 61 74 61 20 28 28 | 73 74 6f 72 65 2d 6d 61 |-data ((|store-ma|
|00002790| 74 63 68 2d 64 61 74 61 | 20 6d 61 74 63 68 2d 64 |tch-data| match-d|
|000027a0| 61 74 61 29 29 20 6c 6f | 6f 6b 69 6e 67 2d 61 74 |ata)) lo|oking-at|
|000027b0| 20 22 28 64 65 66 22 20 | 64 6f 77 6e 2d 6c 69 73 | "(def" |down-lis|
|000027c0| 74 20 31 20 22 64 65 66 | 5c 5c 28 76 61 72 5c 5c |t 1 "def|\\(var\\|
|000027d0| 7c 63 6f 6e 73 74 5c 5c | 29 22 20 66 6f 72 77 61 ||const\\|)" forwa|
|000027e0| 72 64 2d 73 65 78 70 20 | 32 20 69 6d 65 6e 75 2d |rd-sexp |2 imenu-|
|000027f0| 65 78 61 6d 70 6c 65 2d | 2d 6e 61 6d 65 2d 61 6e |example-|-name-an|
|00002800| 64 2d 70 6f 73 69 74 69 | 6f 6e 20 22 64 65 66 5c |d-positi|on "def\|
|00002810| 5c 28 75 6e 5c 5c 7c 73 | 75 62 73 74 5c 5c 7c 6d |\(un\\|s|ubst\\|m|
|00002820| 61 63 72 6f 5c 5c 7c 61 | 64 76 69 63 65 5c 5c 29 |acro\\|a|dvice\\)|
|00002830| 22 20 22 64 65 66 5c 5c | 28 74 79 70 65 5c 5c 7c |" "def\\|(type\\||
|00002840| 73 74 72 75 63 74 5c 5c | 7c 63 6c 61 73 73 5c 5c |struct\\||class\\|
|00002850| 7c 69 6e 65 2d 63 6f 6e | 64 69 74 69 6f 6e 5c 5c ||ine-con|dition\\|
|00002860| 29 22 20 34 31 20 2d 31 | 20 31 30 30 20 69 6d 65 |)" 41 -1| 100 ime|
|00002870| 6e 75 2d 63 72 65 61 74 | 65 2d 73 75 62 6d 65 6e |nu-creat|e-submen|
|00002880| 75 2d 6e 61 6d 65 20 22 | 56 61 72 69 61 62 6c 65 |u-name "|Variable|
|00002890| 73 22 20 22 54 79 70 65 | 73 22 20 22 53 79 6e 74 |s" "Type|s" "Synt|
|000028a0| 61 78 2d 75 6e 6b 6e 6f | 77 6e 22 5d 20 36 5d 20 |ax-unkno|wn"] 6] |
|000028b0| 62 6f 75 6e 64 70 20 69 | 6d 65 6e 75 2d 65 78 61 |boundp i|menu-exa|
|000028c0| 6d 70 6c 65 2d 2d 66 75 | 6e 63 74 69 6f 6e 2d 6e |mple--fu|nction-n|
|000028d0| 61 6d 65 2d 72 65 67 65 | 78 70 2d 63 20 22 5e 5b |ame-rege|xp-c "^[|
|000028e0| 61 2d 7a 41 2d 5a 30 2d | 39 5d 2b 5b 20 09 5d 3f |a-zA-Z0-|9]+[ .]?|
|000028f0| 22 20 22 5c 5c 28 5b 61 | 2d 7a 41 2d 5a 30 2d 39 |" "\\([a|-zA-Z0-9|
|00002900| 5f 2a 5d 2b 5b 20 09 5d | 2b 5c 5c 29 3f 22 20 22 |_*]+[ .]|+\\)?" "|
|00002910| 5c 5c 28 5b 2a 26 5d 2b | 5b 20 09 5d 2a 5c 5c 29 |\\([*&]+|[ .]*\\)|
|00002920| 3f 22 20 22 5c 5c 28 5b | 61 2d 7a 41 2d 5a 30 2d |?" "\\([|a-zA-Z0-|
|00002930| 39 5f 2a 5d 2b 5c 5c 29 | 5b 20 09 5d 2a 28 22 20 |9_*]+\\)|[ .]*(" |
|00002940| 69 6d 65 6e 75 2d 65 78 | 61 6d 70 6c 65 2d 2d 63 |imenu-ex|ample--c|
|00002950| 72 65 61 74 65 2d 63 2d | 69 6e 64 65 78 20 23 5b |reate-c-|index #[|
|00002960| 28 26 6f 70 74 69 6f 6e | 61 6c 20 72 65 67 65 78 |(&option|al regex|
|00002970| 70 29 20 22 c0 89 89 19 | 1a 1b 65 62 88 5c 66 83 |p) "....|..eb.\f.|
|00002980| 1a 00 c5 1e 06 c7 5c 66 | 0e 06 5c 22 88 0e 06 12 |......\f|..\"....|
|00002990| 29 c8 20 1e 09 ca 8e cb | 0e 5c 66 86 28 00 0e 0d |). .....|.\f.(...|
|000029a0| c0 ce 23 83 65 00 5c 66 | 83 49 00 cf c0 21 89 1e |..#.e.\f|.I...!..|
|000029b0| 06 5c 6e d0 5c 5c 56 83 | 48 00 c7 5c 66 0e 06 5c |.\n.\\V.|H..\f..\|
|000029c0| 22 88 0e 06 12 29 d1 d2 | 21 88 8a d3 60 d2 5c 22 |"....)..|!...`.\"|
|000029d0| 62 88 67 11 29 09 d4 3d | 84 20 00 d5 20 0b 42 13 |b.g.)..=|. .. .B.|
|000029e0| 82 20 00 2a 5c 66 83 77 | 00 d6 1e 06 c7 5c 66 0e |. .*\f.w|.....\f.|
|000029f0| 06 5c 22 88 0e 06 12 29 | 0b 9f 2b 87 22 20 5b 6e |.\"....)|..+." [n|
|00002a00| 69 6c 20 63 68 61 72 20 | 70 72 65 76 2d 70 6f 73 |il char |prev-pos|
|00002a10| 20 69 6e 64 65 78 2d 61 | 6c 69 73 74 20 69 6d 65 | index-a|list ime|
|00002a20| 6e 75 2d 73 63 61 6e 6e | 69 6e 67 2d 6d 65 73 73 |nu-scann|ing-mess|
|00002a30| 61 67 65 20 30 20 70 6f | 73 20 6d 65 73 73 61 67 |age 0 po|s messag|
|00002a40| 65 20 6d 61 74 63 68 2d | 64 61 74 61 20 6d 61 74 |e match-|data mat|
|00002a50| 63 68 2d 64 61 74 61 20 | 28 28 73 74 6f 72 65 2d |ch-data |((store-|
|00002a60| 6d 61 74 63 68 2d 64 61 | 74 61 20 6d 61 74 63 68 |match-da|ta match|
|00002a70| 2d 64 61 74 61 29 29 20 | 72 65 2d 73 65 61 72 63 |-data)) |re-searc|
|00002a80| 68 2d 66 6f 72 77 61 72 | 64 20 72 65 67 65 78 70 |h-forwar|d regexp|
|00002a90| 20 69 6d 65 6e 75 2d 65 | 78 61 6d 70 6c 65 2d 2d | imenu-e|xample--|
|00002aa0| 66 75 6e 63 74 69 6f 6e | 2d 6e 61 6d 65 2d 72 65 |function|-name-re|
|00002ab0| 67 65 78 70 2d 63 20 74 | 20 69 6d 65 6e 75 2d 2d |gexp-c t| imenu--|
|00002ac0| 72 65 6c 61 74 69 76 65 | 2d 70 6f 73 69 74 69 6f |relative|-positio|
|00002ad0| 6e 20 35 20 62 61 63 6b | 77 61 72 64 2d 75 70 2d |n 5 back|ward-up-|
|00002ae0| 6c 69 73 74 20 31 20 73 | 63 61 6e 2d 73 65 78 70 |list 1 s|can-sexp|
|00002af0| 73 20 35 39 20 69 6d 65 | 6e 75 2d 65 78 61 6d 70 |s 59 ime|nu-examp|
|00002b00| 6c 65 2d 2d 6e 61 6d 65 | 2d 61 6e 64 2d 70 6f 73 |le--name|-and-pos|
|00002b10| 69 74 69 6f 6e 20 31 30 | 30 5d 20 35 5d 20 69 6d |ition 10|0] 5] im|
|00002b20| 65 6e 75 2d 65 78 61 6d | 70 6c 65 2d 2d 66 75 6e |enu-exam|ple--fun|
|00002b30| 63 74 69 6f 6e 2d 6e 61 | 6d 65 2d 72 65 67 65 78 |ction-na|me-regex|
|00002b40| 70 2d 63 2b 2b 20 22 5e | 5b 61 2d 7a 41 2d 5a 30 |p-c++ "^|[a-zA-Z0|
|00002b50| 2d 39 3a 5d 2b 5b 20 09 | 5d 3f 22 20 22 5c 5c 28 |-9:]+[ .|]?" "\\(|
|00002b60| 5b 61 2d 7a 41 2d 5a 30 | 2d 39 5f 3a 7e 2a 5d 2b |[a-zA-Z0|-9_:~*]+|
|00002b70| 5b 20 09 5d 2b 5c 5c 29 | 3f 22 20 22 5c 5c 28 5b |[ .]+\\)|?" "\\([|
|00002b80| 61 2d 7a 41 2d 5a 30 2d | 39 5f 3a 2a 5d 2b 5c 5c |a-zA-Z0-|9_:*]+\\|
|00002b90| 29 5b 20 09 5d 2a 28 22 | 20 69 6d 65 6e 75 2d 65 |)[ .]*("| imenu-e|
|00002ba0| 78 61 6d 70 6c 65 2d 2d | 63 72 65 61 74 65 2d 63 |xample--|create-c|
|00002bb0| 2b 2b 2d 69 6e 64 65 78 | 20 23 5b 6e 69 6c 20 22 |++-index| #[nil "|
|00002bc0| c0 09 21 87 22 20 5b 69 | 6d 65 6e 75 2d 65 78 61 |..!." [i|menu-exa|
|00002bd0| 6d 70 6c 65 2d 2d 63 72 | 65 61 74 65 2d 63 2d 69 |mple--cr|eate-c-i|
|00002be0| 6e 64 65 78 20 69 6d 65 | 6e 75 2d 65 78 61 6d 70 |ndex ime|nu-examp|
|00002bf0| 6c 65 2d 2d 66 75 6e 63 | 74 69 6f 6e 2d 6e 61 6d |le--func|tion-nam|
|00002c00| 65 2d 72 65 67 65 78 70 | 2d 63 2b 2b 5d 20 32 5d |e-regexp|-c++] 2]|
|00002c10| 20 70 72 6f 76 69 64 65 | 20 69 6d 65 6e 75 5d 20 | provide| imenu] |
|00002c20| 35 29 0a | |5). | |
+--------+-------------------------+-------------------------+--------+--------+